package com.ibeeking.found.upms.b.rest.service;

import com.ibeeking.found.upms.service.common.bo.TenantRoleBO;
import com.ibeeking.found.upms.service.common.param.TenantRoleParam;
import com.ibeeking.found.upms.service.common.query.TenantRolePageQuery;
import com.ibeeking.found.upms.service.common.query.TenantRoleQuery;
import com.ibeeking.found.upms.service.common.vo.RoleSelectVO;
import com.ibeeking.found.upms.service.common.vo.TenantRolePageVO;
import com.ibeeking.found.upms.service.common.vo.TenantRoleVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;


/**
 * ITenantRoleService
 *
 * @Author ibeeking
 * @Date 2020-12-02 15:29
 */
public interface ITenantRoleService {

    /***
     * 分页查询角色列表
     * @param query
     * @return
     */
    Page<TenantRolePageVO> pageList(TenantRolePageQuery query);
    /***
     * 查询角色列表
     * @param query
     * @return
     */
    List<RoleSelectVO> list(TenantRoleQuery query);
    /***
     * 新增
     */
    Boolean add(TenantRoleParam roleParam);

    /***
     * 修改
     */
    Boolean modify(TenantRoleParam roleParam);

    /***
     * 通过id查询
     */
    TenantRoleVO view(Long id);

    TenantRoleBO queryById(Long id);

    /***
     * 修改状态
     */
    Boolean changeStatus(Long id, Integer status, Long userId);

    /***
     * 通过id删除
     */
    Boolean del(Long id);

    /**
     * 角色下拉列表
     *
     * @return
     */
    List<RoleSelectVO> selectRoleList(Long userId);

    List<String> queryUserIdsByRoleId(Long roleId);

    Long selectAdministratorId();
}
